<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SHORTSTACK ISI API</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.52 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="SHORTSTACK_ISI_API"></a>SHORTSTACK ISI API</h1><div class=CBody><p>Function prototypes for the Interoperable Self-Installation (ISI) portion of the ShortStack LonTalk Compact API.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#SHORTSTACK_ISI_API" >SHORTSTACK ISI API</a></td><td class=SDescription>Function prototypes for the Interoperable Self-Installation (ISI) portion of the ShortStack LonTalk Compact API.</td></tr><tr class="SSection"><td class=SEntry><a href="#ISI_API_FUNCTIONS" >ISI API FUNCTIONS</a></td><td class=SDescription>This section details the ShortStack ISI API functions.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiStop" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">IsiStop</a></td><td class=SDescription>Stops the ISI engine.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiStart" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">IsiStart</a></td><td class=SDescription>Starts the ISI engine.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiReturnToFactoryDefaults" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">IsiReturnToFactoryDefaults</a></td><td class=SDescription>Restores the device�s self-installation data to factory defaults.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiAcquireDomain" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">IsiAcquireDomain</a></td><td class=SDescription>Starts or restarts the domain ID acquisition process in an ISI-DA device.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiStartDeviceAcquisition" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">IsiStartDeviceAcquisition</a></td><td class=SDescription>Starts or retriggers device acquisition mode on a domain address server.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiOpenEnrollment" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">IsiOpenEnrollment</a></td><td class=SDescription>Opens manual enrollment for the specified assembly.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiCreateEnrollment" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">IsiCreateEnrollment</a></td><td class=SDescription>Accepts a connection invitation.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiExtendEnrollment" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">IsiExtendEnrollment</a></td><td class=SDescription>Extends an enrollment invitation.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiCancelEnrollment" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">IsiCancelEnrollment</a></td><td class=SDescription>Cancels an open (pending or approved) enrollment.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiLeaveEnrollment" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">IsiLeaveEnrollment</a></td><td class=SDescription>Removes the specified assembly from all enrolled connections as a local operation only.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiDeleteEnrollment" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">IsiDeleteEnrollment</a></td><td class=SDescription>Removes the specified assembly from all enrolled connections.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiInitiateAutoEnrollment" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">IsiInitiateAutoEnrollment</a></td><td class=SDescription>Starts automatic enrollment.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiQueryIsConnected" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a></td><td class=SDescription>Queries the connection status of an assembly.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiQueryImplementationVersion" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a></td><td class=SDescription>Queries the version number of the ISI implementation.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiQueryProtocolVersion" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a></td><td class=SDescription>Queries the protocol version of the ISI implementation.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiQueryIsRunning" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a></td><td class=SDescription>Queries the state of the ISI engine.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiQueryIsBecomingHost" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a></td><td class=SDescription>Queries whether the specified assembly is a host for an enrollment.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiCancelAcquisition" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">IsiCancelAcquisition</a></td><td class=SDescription>Cancels both device and domain acquisition.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiFetchDevice" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">IsiFetchDevice</a></td><td class=SDescription>Fetches a device by assigning a domain to the device from a domain address server (DAS).</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiFetchDomain" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">IsiFetchDomain</a></td><td class=SDescription>Starts or restarts the fetch domain process in a domain address server (DAS).</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiIssueHeartbeat" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">IsiIssueHeartbeat</a></td><td class=SDescription>Sends an update for the specified bound output network variable and its aliases, using group addressing.</td></tr><tr class="SSection"><td class=SEntry><a href="#ISI_UPLINK_DATA_CALLBACK_PROTOTYPES" >ISI UPLINK DATA CALLBACK PROTOTYPES</a></td><td class=SDescription>Following are the prototypes for the functions which serve as a means for returning data requested by certain ISI API calls. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiIsConnectedReceived" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">IsiIsConnectedReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsConnected" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt13', 'link23')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a> is received.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiImplementationVersionReceived" id=link24 onMouseOver="ShowTip(event, 'tt23', 'link24')" onMouseOut="HideTip('tt23')">IsiImplementationVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryImplementationVersion" class=LFunction id=link25 onMouseOver="ShowTip(event, 'tt14', 'link25')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a> is received.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiProtocolVersionReceived" id=link26 onMouseOver="ShowTip(event, 'tt24', 'link26')" onMouseOut="HideTip('tt24')">IsiProtocolVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryProtocolVersion" class=LFunction id=link27 onMouseOver="ShowTip(event, 'tt15', 'link27')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a> is received.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiIsRunningReceived" id=link28 onMouseOver="ShowTip(event, 'tt25', 'link28')" onMouseOut="HideTip('tt25')">IsiIsRunningReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsRunning" class=LFunction id=link29 onMouseOver="ShowTip(event, 'tt16', 'link29')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a> is received.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiIsBecomingHostReceived" id=link30 onMouseOver="ShowTip(event, 'tt26', 'link30')" onMouseOut="HideTip('tt26')">IsiIsBecomingHostReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsBecomingHost" class=LFunction id=link31 onMouseOver="ShowTip(event, 'tt17', 'link31')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a> is received.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiApiComplete" id=link32 onMouseOver="ShowTip(event, 'tt27', 'link32')" onMouseOut="HideTip('tt27')">IsiApiComplete</a></td><td class=SDescription>Indicates that the API function is complete and the result has been received.</td></tr><tr class="SSection"><td class=SEntry><a href="#ISI_CALLBACK_HANDLER_PROTOTYPES" >ISI CALLBACK HANDLER PROTOTYPES</a></td><td class=SDescription>Following are the prototypes for the ShortStack ISI host API callback handler functions that are called by the ISI engine through the Micro Server. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiCreatePeriodicMsg" id=link33 onMouseOver="ShowTip(event, 'tt28', 'link33')" onMouseOut="HideTip('tt28')">IsiCreatePeriodicMsg</a></td><td class=SDescription>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiUpdateUserInterface" id=link34 onMouseOver="ShowTip(event, 'tt29', 'link34')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a></td><td class=SDescription>Provides status feedback from the ISI engine.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiCreateCsmo" id=link35 onMouseOver="ShowTip(event, 'tt30', 'link35')" onMouseOut="HideTip('tt30')">IsiCreateCsmo</a></td><td class=SDescription>Constructs the IsiCsmoData portion of a CSMO Message.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetPrimaryGroup" id=link36 onMouseOver="ShowTip(event, 'tt31', 'link36')" onMouseOut="HideTip('tt31')">IsiGetPrimaryGroup</a></td><td class=SDescription>Returns the group ID for the specified assembly.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiGetAssembly" id=link37 onMouseOver="ShowTip(event, 'tt32', 'link37')" onMouseOut="HideTip('tt32')">IsiGetAssembly</a></td><td class=SDescription>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetNextAssembly" id=link38 onMouseOver="ShowTip(event, 'tt33', 'link38')" onMouseOut="HideTip('tt33')">IsiGetNextAssembly</a></td><td class=SDescription>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiGetNvIndex" id=link39 onMouseOver="ShowTip(event, 'tt34', 'link39')" onMouseOut="HideTip('tt34')">IsiGetNvIndex</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetNextNvIndex" id=link40 onMouseOver="ShowTip(event, 'tt35', 'link40')" onMouseOut="HideTip('tt35')">IsiGetNextNvIndex</a></td><td class=SDescription>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiGetPrimaryDid" id=link41 onMouseOver="ShowTip(event, 'tt36', 'link41')" onMouseOut="HideTip('tt36')">IsiGetPrimaryDid</a></td><td class=SDescription>Returns a pointer to the default primary domain ID for the device.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetWidth" id=link42 onMouseOver="ShowTip(event, 'tt37', 'link42')" onMouseOut="HideTip('tt37')">IsiGetWidth</a></td><td class=SDescription>Returns the width in the specified assembly.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiGetConnectionTableSize" id=link43 onMouseOver="ShowTip(event, 'tt38', 'link43')" onMouseOut="HideTip('tt38')">IsiGetConnectionTableSize</a></td><td class=SDescription>Returns the number of entries in the connection table.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetConnection" id=link44 onMouseOver="ShowTip(event, 'tt39', 'link44')" onMouseOut="HideTip('tt39')">IsiGetConnection</a></td><td class=SDescription>Returns a pointer to an entry in the connection table.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiSetConnection" id=link45 onMouseOver="ShowTip(event, 'tt40', 'link45')" onMouseOut="HideTip('tt40')">IsiSetConnection</a></td><td class=SDescription>Updates an entry in the connection table.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetRepeatCount" id=link46 onMouseOver="ShowTip(event, 'tt41', 'link46')" onMouseOut="HideTip('tt41')">IsiGetRepeatCount</a></td><td class=SDescription>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiQueryHeartbeat" id=link47 onMouseOver="ShowTip(event, 'tt42', 'link47')" onMouseOut="HideTip('tt42')">IsiQueryHeartbeat</a></td><td class=SDescription>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#IsiGetNvValue" id=link48 onMouseOver="ShowTip(event, 'tt43', 'link48')" onMouseOut="HideTip('tt43')">IsiGetNvValue</a></td><td class=SDescription>Returns the current value of the specified network variable.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#IsiUserCommand" id=link49 onMouseOver="ShowTip(event, 'tt44', 'link49')" onMouseOut="HideTip('tt44')">IsiUserCommand</a></td><td class=SDescription>Informs the host application about events happening in the Micro Server.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="ISI_API_FUNCTIONS"></a>ISI API FUNCTIONS</h2><div class=CBody><p>This section details the ShortStack ISI API functions.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiStop" id=link50 onMouseOver="ShowTip(event, 'tt1', 'link50')" onMouseOut="HideTip('tt1')">IsiStop</a></td><td class=SDescription>Stops the ISI engine.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiStart" id=link51 onMouseOver="ShowTip(event, 'tt2', 'link51')" onMouseOut="HideTip('tt2')">IsiStart</a></td><td class=SDescription>Starts the ISI engine.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiReturnToFactoryDefaults" id=link52 onMouseOver="ShowTip(event, 'tt3', 'link52')" onMouseOut="HideTip('tt3')">IsiReturnToFactoryDefaults</a></td><td class=SDescription>Restores the device�s self-installation data to factory defaults.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiAcquireDomain" id=link53 onMouseOver="ShowTip(event, 'tt4', 'link53')" onMouseOut="HideTip('tt4')">IsiAcquireDomain</a></td><td class=SDescription>Starts or restarts the domain ID acquisition process in an ISI-DA device.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiStartDeviceAcquisition" id=link54 onMouseOver="ShowTip(event, 'tt5', 'link54')" onMouseOut="HideTip('tt5')">IsiStartDeviceAcquisition</a></td><td class=SDescription>Starts or retriggers device acquisition mode on a domain address server.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiOpenEnrollment" id=link55 onMouseOver="ShowTip(event, 'tt6', 'link55')" onMouseOut="HideTip('tt6')">IsiOpenEnrollment</a></td><td class=SDescription>Opens manual enrollment for the specified assembly.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCreateEnrollment" id=link56 onMouseOver="ShowTip(event, 'tt7', 'link56')" onMouseOut="HideTip('tt7')">IsiCreateEnrollment</a></td><td class=SDescription>Accepts a connection invitation.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiExtendEnrollment" id=link57 onMouseOver="ShowTip(event, 'tt8', 'link57')" onMouseOut="HideTip('tt8')">IsiExtendEnrollment</a></td><td class=SDescription>Extends an enrollment invitation.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCancelEnrollment" id=link58 onMouseOver="ShowTip(event, 'tt9', 'link58')" onMouseOut="HideTip('tt9')">IsiCancelEnrollment</a></td><td class=SDescription>Cancels an open (pending or approved) enrollment.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiLeaveEnrollment" id=link59 onMouseOver="ShowTip(event, 'tt10', 'link59')" onMouseOut="HideTip('tt10')">IsiLeaveEnrollment</a></td><td class=SDescription>Removes the specified assembly from all enrolled connections as a local operation only.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiDeleteEnrollment" id=link60 onMouseOver="ShowTip(event, 'tt11', 'link60')" onMouseOut="HideTip('tt11')">IsiDeleteEnrollment</a></td><td class=SDescription>Removes the specified assembly from all enrolled connections.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiInitiateAutoEnrollment" id=link61 onMouseOver="ShowTip(event, 'tt12', 'link61')" onMouseOut="HideTip('tt12')">IsiInitiateAutoEnrollment</a></td><td class=SDescription>Starts automatic enrollment.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiQueryIsConnected" id=link62 onMouseOver="ShowTip(event, 'tt13', 'link62')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a></td><td class=SDescription>Queries the connection status of an assembly.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiQueryImplementationVersion" id=link63 onMouseOver="ShowTip(event, 'tt14', 'link63')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a></td><td class=SDescription>Queries the version number of the ISI implementation.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiQueryProtocolVersion" id=link64 onMouseOver="ShowTip(event, 'tt15', 'link64')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a></td><td class=SDescription>Queries the protocol version of the ISI implementation.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiQueryIsRunning" id=link65 onMouseOver="ShowTip(event, 'tt16', 'link65')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a></td><td class=SDescription>Queries the state of the ISI engine.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiQueryIsBecomingHost" id=link66 onMouseOver="ShowTip(event, 'tt17', 'link66')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a></td><td class=SDescription>Queries whether the specified assembly is a host for an enrollment.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiCancelAcquisition" id=link67 onMouseOver="ShowTip(event, 'tt18', 'link67')" onMouseOut="HideTip('tt18')">IsiCancelAcquisition</a></td><td class=SDescription>Cancels both device and domain acquisition.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiFetchDevice" id=link68 onMouseOver="ShowTip(event, 'tt19', 'link68')" onMouseOut="HideTip('tt19')">IsiFetchDevice</a></td><td class=SDescription>Fetches a device by assigning a domain to the device from a domain address server (DAS).</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiFetchDomain" id=link69 onMouseOver="ShowTip(event, 'tt20', 'link69')" onMouseOut="HideTip('tt20')">IsiFetchDomain</a></td><td class=SDescription>Starts or restarts the fetch domain process in a domain address server (DAS).</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiIssueHeartbeat" id=link70 onMouseOver="ShowTip(event, 'tt21', 'link70')" onMouseOut="HideTip('tt21')">IsiIssueHeartbeat</a></td><td class=SDescription>Sends an update for the specified bound output network variable and its aliases, using group addressing.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiStop"></a>IsiStop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStop(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stops the ISI engine.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link71 onMouseOver="ShowTip(event, 'tt45', 'link71')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Use the <a href="#IsiStart" class=LFunction id=link72 onMouseOver="ShowTip(event, 'tt2', 'link72')" onMouseOut="HideTip('tt2')">IsiStart</a> function to restart the ISI engine.&nbsp; This function has no forwarder.&nbsp; Calling this function when the ISI engine is already stopped has no action.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiStart"></a>IsiStart</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStart(</td><td class="PType  prettyprint " nowrap>IsiType&nbsp;</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiStartFlags&nbsp;</td><td class="PParameter  prettyprint " nowrap>flags</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts the ISI engine.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>type of the ISI engine.</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>option flags when starting the engine.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link73 onMouseOver="ShowTip(event, 'tt45', 'link73')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>After this function is called, the ISI engine sends and receives ISI messages, and manages the network configuration of your device.&nbsp; Typically, you start the ISI engine in your reset task when self-installation is enabled, and you stop the ISI engine when self-installation is disabled.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiReturnToFactoryDefaults"></a>IsiReturnToFactoryDefaults</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiReturnToFactoryDefaults(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Restores the device�s self-installation data to factory defaults.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link74 onMouseOver="ShowTip(event, 'tt45', 'link74')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function restores the device�s self-installation data to factory defaults, causing the immediate and unrecoverable loss of all connection information.&nbsp; This function has the same functionality regardless of whether the ISI engine is running or not.&nbsp; The engine is stopped and the device resets to complete the process.&nbsp; Because of the reset, this function never returns to the caller.&nbsp; Any changes related to returning to factory defaults, such as resetting of device-specific configuration properties to their initial values, must occur prior to calling this function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiAcquireDomain"></a>IsiAcquireDomain</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiAcquireDomain(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>sharedServicePin</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts or restarts the domain ID acquisition process in an ISI-DA device.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sharedServicePin</td><td class=CDLDescription>boolean indicating whether the service pin is shared.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link75 onMouseOver="ShowTip(event, 'tt45', 'link75')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function is also used for the confirmation step in the domain ID acquisition and domain ID sniffing procedures.&nbsp; The ISI engine must be running for this function to have any effect.&nbsp; This function has unpredictable effect on an ISI-S device and therefore should only be used with an ISI-DA device.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiStartDeviceAcquisition"></a>IsiStartDeviceAcquisition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStartDeviceAcquisition(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts or retriggers device acquisition mode on a domain address server.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link76 onMouseOver="ShowTip(event, 'tt45', 'link76')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function has no effect on an ISI-S or ISI-DA device, or if the ISI engine is stopped.&nbsp; No forwarder is provided for this function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiOpenEnrollment"></a>IsiOpenEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiOpenEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Opens manual enrollment for the specified assembly.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be opened.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link77 onMouseOver="ShowTip(event, 'tt45', 'link77')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This operation turns the device into a connection host for this connection, and sends a CSMO manual connection invitation to all devices in the network.&nbsp; No forwarder is provided for this function.&nbsp; The ISI engine must be running and in the idle state.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCreateEnrollment"></a>IsiCreateEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCreateEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Accepts a connection invitation.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be created.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link78 onMouseOver="ShowTip(event, 'tt45', 'link78')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function is called after the application has received and approved a CSMO open enrollment message.&nbsp; The connection is created anew, replacing any previously existing enrollment information associated with this assembly.&nbsp; On a connection host that has received at least one CSME enrollment acceptance message, this command completes the enrollment and implements the connection as new, replacing any previously existing enrollment information associated with this assembly.&nbsp; The ISI engine must be running and in the correct state for this function to have any effect.&nbsp; For a connection host, the ISI engine must be in the approved state.&nbsp; Other devices must be in the pending state.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiExtendEnrollment"></a>IsiExtendEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiExtendEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Extends an enrollment invitation.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be extended.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link79 onMouseOver="ShowTip(event, 'tt45', 'link79')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function is called after the application has received and approved a CSMO open enrollment message.&nbsp; The connection is added to any previously existing connections.&nbsp; If no previous connection exists for assembly, a new connection is created.&nbsp; On a connection host that has received at least one CSME enrollment acceptance message, this command completes the enrollment and extends any existing connections.&nbsp; If no previous connection exists for assembly, a new connection is created.&nbsp; The ISI engine must be running and in the correct state for this function to have any effect.&nbsp; For a connection host, the ISI engine must be in the approved state.&nbsp; Other devices must be in the pending state.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCancelEnrollment"></a>IsiCancelEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCancelEnrollment(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cancels an open (pending or approved) enrollment.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link80 onMouseOver="ShowTip(event, 'tt45', 'link80')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>When used on a connection host, a CSMX connection cancellation message is issued to cancel enrollment on the connection members.&nbsp; When used on a device that has accepted, but not yet implemented, an open enrollment, this function causes the device to opt out of the enrollment locally.&nbsp; The function has no effect unless the ISI engine is running and in the pending or approved state.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiLeaveEnrollment"></a>IsiLeaveEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiLeaveEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the specified assembly from all enrolled connections as a local operation only.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be removed.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link81 onMouseOver="ShowTip(event, 'tt45', 'link81')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>When used on the connection host, the function is automatically interpreted as <a href="#IsiDeleteEnrollment" class=LFunction id=link82 onMouseOver="ShowTip(event, 'tt11', 'link82')" onMouseOut="HideTip('tt11')">IsiDeleteEnrollment</a>.&nbsp; No forwarder is provided for this function.&nbsp; This function has no effect if the ISI engine is stopped.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiDeleteEnrollment"></a>IsiDeleteEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiDeleteEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Removes the specified assembly from all enrolled connections.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be deleted.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link83 onMouseOver="ShowTip(event, 'tt45', 'link83')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function removes the specified assembly from all enrolled connections, and sends a CSMD connection deletion message to all other devices in the connection to remove them from the connection as well.&nbsp; This function has no effect if the ISI engine is stopped.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiInitiateAutoEnrollment"></a>IsiInitiateAutoEnrollment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiInitiateAutoEnrollment(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsma,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts automatic enrollment.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pCsma</td><td class=CDLDescription>data for automatic enrollment.</td></tr><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the enrollment should be initiated.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link84 onMouseOver="ShowTip(event, 'tt45', 'link84')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Use this function to start automatic enrollment.&nbsp; The local device becomes the host for the automatic connection.&nbsp; Automatic enrollment can replace previous connections, if any.&nbsp; No forwarder exists for this function.&nbsp; This function cannot be called before the <b>isiWarm</b> event has been signaled in the <a href="#IsiUpdateUserInterface" class=LFunction id=link85 onMouseOver="ShowTip(event, 'tt29', 'link85')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> callback.&nbsp; This function does nothing when the ISI engine is stopped.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryIsConnected"></a>IsiQueryIsConnected</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsConnected(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Queries the connection status of an assembly.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the connection status needs to be queried.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link86 onMouseOver="ShowTip(event, 'tt45', 'link86')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Successful invocation of this function results in the callback <a href="#IsiIsConnectedReceived" class=LFunction id=link87 onMouseOver="ShowTip(event, 'tt22', 'link87')" onMouseOut="HideTip('tt22')">IsiIsConnectedReceived</a>.&nbsp; The callback returns TRUE if the specified assembly is enrolled in a connection.&nbsp; No forwarder is provided for this function.&nbsp; The function operates whether the ISI engine is running or not.&nbsp; The callback returns FALSE if the ISI engine is stopped.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryImplementationVersion"></a>IsiQueryImplementationVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryImplementationVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Queries the version number of the ISI implementation.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link88 onMouseOver="ShowTip(event, 'tt45', 'link88')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Successful invocation of this function results in the callback <a href="#IsiImplementationVersionReceived" class=LFunction id=link89 onMouseOver="ShowTip(event, 'tt23', 'link89')" onMouseOut="HideTip('tt23')">IsiImplementationVersionReceived</a>.&nbsp; The callback returns the version number of the ISI implementation in the Micro Server.&nbsp; No forwarder is provided for this function.&nbsp; This function operates in any state of the ISI engine.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryProtocolVersion"></a>IsiQueryProtocolVersion</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryProtocolVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Queries the protocol version of the ISI implementation.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link90 onMouseOver="ShowTip(event, 'tt45', 'link90')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Successful invocation of this function results in the callback <a href="#IsiProtocolVersionReceived" class=LFunction id=link91 onMouseOver="ShowTip(event, 'tt24', 'link91')" onMouseOut="HideTip('tt24')">IsiProtocolVersionReceived</a>.&nbsp; The callback returns the version of the ISI protocol supported by the ISI engine.&nbsp; The number indicates the maximum protocol version supported.&nbsp; The ISI engine also supports protocol versions less than the number returned unless explicitly indicated.&nbsp; No forwarder is provided for this function.&nbsp; The function operates in either state of the ISI engine.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryIsRunning"></a>IsiQueryIsRunning</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsRunning(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Queries the state of the ISI engine.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link92 onMouseOver="ShowTip(event, 'tt45', 'link92')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Successful invocation of this function results in the callback <a href="#IsiIsRunningReceived" class=LFunction id=link93 onMouseOver="ShowTip(event, 'tt25', 'link93')" onMouseOut="HideTip('tt25')">IsiIsRunningReceived</a>.&nbsp; The callback returns TRUE if the ISI engine is running and FALSE if the ISI engine is stopped.&nbsp; Non-zero values are considered TRUE.&nbsp; No forwarder is provided for this function.&nbsp; The function operates in all states of the ISI engine.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryIsBecomingHost"></a>IsiQueryIsBecomingHost</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsBecomingHost(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Queries whether the specified assembly is a host for an enrollment.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly which needs to be queried.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link94 onMouseOver="ShowTip(event, 'tt45', 'link94')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Successful invocation of this function results in the callback <a href="#IsiIsBecomingHostReceived" class=LFunction id=link95 onMouseOver="ShowTip(event, 'tt26', 'link95')" onMouseOut="HideTip('tt26')">IsiIsBecomingHostReceived</a>.&nbsp; The callback returns TRUE if <a href="#IsiOpenEnrollment" class=LFunction id=link96 onMouseOver="ShowTip(event, 'tt6', 'link96')" onMouseOut="HideTip('tt6')">IsiOpenEnrollment</a> has been called for the specified assembly and the enrollment has not yet timed out, been cancelled, or confirmed.&nbsp; The function returns FALSE otherwise.&nbsp; You can also override the <a href="#IsiUpdateUserInterface" class=LFunction id=link97 onMouseOver="ShowTip(event, 'tt29', 'link97')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> callback function and track the state of the assembly.&nbsp; The callack returns TRUE if that state is <b>IsiPendingHost</b> or <b>IsiApprovedHost</b>.&nbsp; No forwarder is provided for this function.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCancelAcquisition"></a>IsiCancelAcquisition</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCancelAcquisition(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Cancels both device and domain acquisition.</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link98 onMouseOver="ShowTip(event, 'tt45', 'link98')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>Following the completion of this function call, <a href="#IsiUpdateUserInterface" class=LFunction id=link99 onMouseOver="ShowTip(event, 'tt29', 'link99')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> is called with the <b>IsiNormal</b> event.&nbsp; This function has no effect unless the ISI engine is running and the device is either in device or domain acquisition mode.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiFetchDevice"></a>IsiFetchDevice</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiFetchDevice(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches a device by assigning a domain to the device from a domain address server (DAS).</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link100 onMouseOver="ShowTip(event, 'tt45', 'link100')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function must not be called from a device that is not a domain address server.&nbsp; This operation does not require application code on the remote device.&nbsp; The remote device remains unaware of the change to its primary domain.&nbsp; An alternate method to assign a domain to a device is for the device to use the <a href="#IsiAcquireDomain" class=LFunction id=link101 onMouseOver="ShowTip(event, 'tt4', 'link101')" onMouseOut="HideTip('tt4')">IsiAcquireDomain</a> function.&nbsp; This function provides more immediate recovery from network addressing conflicts and more immediate maintenance of automatic connections.&nbsp; The disadvantage of using the <a href="#IsiAcquireDomain" class=LFunction id=link102 onMouseOver="ShowTip(event, 'tt4', 'link102')" onMouseOut="HideTip('tt4')">IsiAcquireDomain</a> function is that it typically requires more code on the device, and it requires that the device support ISI-DA.&nbsp; The <a href="#IsiFetchDevice" class=LFunction id=link103 onMouseOver="ShowTip(event, 'tt19', 'link103')" onMouseOut="HideTip('tt19')">IsiFetchDevice</a> function can be used with any device.&nbsp; A DAS must support both methods.&nbsp; The ISI engine must be running for this function to have any effect, and this function only operates on a domain address server.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiFetchDomain"></a>IsiFetchDomain</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiFetchDomain(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts or restarts the fetch domain process in a domain address server (DAS).</p><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link104 onMouseOver="ShowTip(event, 'tt45', 'link104')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function must not be called from a device that is not a domain address server.&nbsp; The ISI engine must be running for this function to have any effect, and this function only operates on a domain address server.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIssueHeartbeat"></a>IsiIssueHeartbeat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiIssueHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sends an update for the specified bound output network variable and its aliases, using group addressing.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>network variable index for which the heart beat needs to be issued.</td></tr></table><h4 class=CHeading>Returns</h4><p><a href="ShortStackTypes-h.html#LonApiError" class=LType id=link105 onMouseOver="ShowTip(event, 'tt45', 'link105')" onMouseOut="HideTip('tt45')">LonApiError</a>.</p><h4 class=CHeading>Remarks</h4><p>This function sends a network variable update for the specified network variable index and its aliases, as long as the network variable is a bound output network variable using group addressing.&nbsp; This function uses the address table for addressing information, but always uses unacknowledged service with one repeat when issuing the heartbeat.&nbsp; It only sends a network variable if it uses group addressing (the default ISI addressing mode) � it skips updates that use a different addressing mode.&nbsp; This function is typically called in an <a href="#IsiQueryHeartbeat" class=LFunction id=link106 onMouseOver="ShowTip(event, 'tt42', 'link106')" onMouseOut="HideTip('tt42')">IsiQueryHeartbeat</a> callback.&nbsp; If the function is called outside of this callback to create a custom heartbeat scheme, the application must only call this function for bound output network variables.&nbsp; This function requires that the ISI engine has been started with the <b>IsiFlagHeartbeat</b> flag.</p></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="ISI_UPLINK_DATA_CALLBACK_PROTOTYPES"></a>ISI UPLINK DATA CALLBACK PROTOTYPES</h2><div class=CBody><p>Following are the prototypes for the functions which serve as a means for returning data requested by certain ISI API calls.&nbsp; Skeletons for these callback functions are provided in ShortStackIsiHandlers.c.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiIsConnectedReceived" id=link107 onMouseOver="ShowTip(event, 'tt22', 'link107')" onMouseOut="HideTip('tt22')">IsiIsConnectedReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsConnected" class=LFunction id=link108 onMouseOver="ShowTip(event, 'tt13', 'link108')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a> is received.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiImplementationVersionReceived" id=link109 onMouseOver="ShowTip(event, 'tt23', 'link109')" onMouseOut="HideTip('tt23')">IsiImplementationVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryImplementationVersion" class=LFunction id=link110 onMouseOver="ShowTip(event, 'tt14', 'link110')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a> is received.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiProtocolVersionReceived" id=link111 onMouseOver="ShowTip(event, 'tt24', 'link111')" onMouseOut="HideTip('tt24')">IsiProtocolVersionReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryProtocolVersion" class=LFunction id=link112 onMouseOver="ShowTip(event, 'tt15', 'link112')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a> is received.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiIsRunningReceived" id=link113 onMouseOver="ShowTip(event, 'tt25', 'link113')" onMouseOut="HideTip('tt25')">IsiIsRunningReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsRunning" class=LFunction id=link114 onMouseOver="ShowTip(event, 'tt16', 'link114')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a> is received.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiIsBecomingHostReceived" id=link115 onMouseOver="ShowTip(event, 'tt26', 'link115')" onMouseOut="HideTip('tt26')">IsiIsBecomingHostReceived</a></td><td class=SDescription>Occurs when the response to <a href="#IsiQueryIsBecomingHost" class=LFunction id=link116 onMouseOver="ShowTip(event, 'tt17', 'link116')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a> is received.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiApiComplete" id=link117 onMouseOver="ShowTip(event, 'tt27', 'link117')" onMouseOut="HideTip('tt27')">IsiApiComplete</a></td><td class=SDescription>Indicates that the API function is complete and the result has been received.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsConnectedReceived"></a>IsiIsConnectedReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsConnectedReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isConnected</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="#IsiQueryIsConnected" class=LFunction id=link118 onMouseOver="ShowTip(event, 'tt13', 'link118')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>assembly for which the query was made.</td></tr><tr><td class=CDLEntry>isConnected</td><td class=CDLDescription>boolean indicating the connection status of the assembly.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="#IsiQueryIsConnected" class=LFunction id=link119 onMouseOver="ShowTip(event, 'tt13', 'link119')" onMouseOut="HideTip('tt13')">IsiQueryIsConnected</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiImplementationVersionReceived"></a>IsiImplementationVersionReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiImplementationVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="#IsiQueryImplementationVersion" class=LFunction id=link120 onMouseOver="ShowTip(event, 'tt14', 'link120')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>version</td><td class=CDLDescription>version number of the ISI implementation.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="#IsiQueryImplementationVersion" class=LFunction id=link121 onMouseOver="ShowTip(event, 'tt14', 'link121')" onMouseOut="HideTip('tt14')">IsiQueryImplementationVersion</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiProtocolVersionReceived"></a>IsiProtocolVersionReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiProtocolVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="#IsiQueryProtocolVersion" class=LFunction id=link122 onMouseOver="ShowTip(event, 'tt15', 'link122')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>version</td><td class=CDLDescription>version number of the ISI protocol being implemented.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="#IsiQueryProtocolVersion" class=LFunction id=link123 onMouseOver="ShowTip(event, 'tt15', 'link123')" onMouseOut="HideTip('tt15')">IsiQueryProtocolVersion</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsRunningReceived"></a>IsiIsRunningReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsRunningReceived(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isRunning</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="#IsiQueryIsRunning" class=LFunction id=link124 onMouseOver="ShowTip(event, 'tt16', 'link124')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>isRunning</td><td class=CDLDescription>boolean indicating whether the ISI engine is running or not.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="#IsiQueryIsRunning" class=LFunction id=link125 onMouseOver="ShowTip(event, 'tt16', 'link125')" onMouseOut="HideTip('tt16')">IsiQueryIsRunning</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiIsBecomingHostReceived"></a>IsiIsBecomingHostReceived</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsBecomingHostReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isBecomingHost</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Occurs when the response to <a href="#IsiQueryIsBecomingHost" class=LFunction id=link126 onMouseOver="ShowTip(event, 'tt17', 'link126')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a> is received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>assembly</td><td class=CDLDescription>the assembly for which the query was made.</td></tr><tr><td class=CDLEntry>isBecomingHost</td><td class=CDLDescription>boolean indicating whether the assembly in question is becoming a host.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This callback contains the results of the <a href="#IsiQueryIsBecomingHost" class=LFunction id=link127 onMouseOver="ShowTip(event, 'tt17', 'link127')" onMouseOut="HideTip('tt17')">IsiQueryIsBecomingHost</a> function.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiApiComplete"></a>IsiApiComplete</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiApiComplete(</td><td class="PType  prettyprint " nowrap>IsiDownlinkRpcCode&nbsp;</td><td class="PParameter  prettyprint " nowrap>code,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameter  prettyprint " nowrap>sequence,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>success</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Indicates that the API function is complete and the result has been received.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>code</td><td class=CDLDescription>downlink function that just completed.</td></tr><tr><td class=CDLEntry>sequence</td><td class=CDLDescription>sequence number of the downlink message.</td></tr><tr><td class=CDLEntry>success</td><td class=CDLDescription>boolean indicating whether the function completed successfully.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This function is called when an API function completes.&nbsp;  You generally should not call an ISI API until the previous one completes.&nbsp;  In some cases if you violate this rule, the ShortStack Micro Server could return a NACK, and this callback will be invoked with a value of FALSE for the &ldquo;success&rdquo; parameter.&nbsp;  Note that the Micro Server is not guaranteed to return ACKs and NACKs in order.</p></div></div></div>

<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="ISI_CALLBACK_HANDLER_PROTOTYPES"></a>ISI CALLBACK HANDLER PROTOTYPES</h2><div class=CBody><p>Following are the prototypes for the ShortStack ISI host API callback handler functions that are called by the ISI engine through the Micro Server.&nbsp; Skeletons for these callback functions are provided in ShortStackIsiHandlers.c.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCreatePeriodicMsg" id=link128 onMouseOver="ShowTip(event, 'tt28', 'link128')" onMouseOut="HideTip('tt28')">IsiCreatePeriodicMsg</a></td><td class=SDescription>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiUpdateUserInterface" id=link129 onMouseOver="ShowTip(event, 'tt29', 'link129')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a></td><td class=SDescription>Provides status feedback from the ISI engine.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiCreateCsmo" id=link130 onMouseOver="ShowTip(event, 'tt30', 'link130')" onMouseOut="HideTip('tt30')">IsiCreateCsmo</a></td><td class=SDescription>Constructs the IsiCsmoData portion of a CSMO Message.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetPrimaryGroup" id=link131 onMouseOver="ShowTip(event, 'tt31', 'link131')" onMouseOut="HideTip('tt31')">IsiGetPrimaryGroup</a></td><td class=SDescription>Returns the group ID for the specified assembly.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetAssembly" id=link132 onMouseOver="ShowTip(event, 'tt32', 'link132')" onMouseOut="HideTip('tt32')">IsiGetAssembly</a></td><td class=SDescription>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNextAssembly" id=link133 onMouseOver="ShowTip(event, 'tt33', 'link133')" onMouseOut="HideTip('tt33')">IsiGetNextAssembly</a></td><td class=SDescription>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetNvIndex" id=link134 onMouseOver="ShowTip(event, 'tt34', 'link134')" onMouseOut="HideTip('tt34')">IsiGetNvIndex</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNextNvIndex" id=link135 onMouseOver="ShowTip(event, 'tt35', 'link135')" onMouseOut="HideTip('tt35')">IsiGetNextNvIndex</a></td><td class=SDescription>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetPrimaryDid" id=link136 onMouseOver="ShowTip(event, 'tt36', 'link136')" onMouseOut="HideTip('tt36')">IsiGetPrimaryDid</a></td><td class=SDescription>Returns a pointer to the default primary domain ID for the device.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetWidth" id=link137 onMouseOver="ShowTip(event, 'tt37', 'link137')" onMouseOut="HideTip('tt37')">IsiGetWidth</a></td><td class=SDescription>Returns the width in the specified assembly.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiGetConnectionTableSize" id=link138 onMouseOver="ShowTip(event, 'tt38', 'link138')" onMouseOut="HideTip('tt38')">IsiGetConnectionTableSize</a></td><td class=SDescription>Returns the number of entries in the connection table.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetConnection" id=link139 onMouseOver="ShowTip(event, 'tt39', 'link139')" onMouseOut="HideTip('tt39')">IsiGetConnection</a></td><td class=SDescription>Returns a pointer to an entry in the connection table.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiSetConnection" id=link140 onMouseOver="ShowTip(event, 'tt40', 'link140')" onMouseOut="HideTip('tt40')">IsiSetConnection</a></td><td class=SDescription>Updates an entry in the connection table.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetRepeatCount" id=link141 onMouseOver="ShowTip(event, 'tt41', 'link141')" onMouseOut="HideTip('tt41')">IsiGetRepeatCount</a></td><td class=SDescription>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiQueryHeartbeat" id=link142 onMouseOver="ShowTip(event, 'tt42', 'link142')" onMouseOut="HideTip('tt42')">IsiQueryHeartbeat</a></td><td class=SDescription>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#IsiGetNvValue" id=link143 onMouseOver="ShowTip(event, 'tt43', 'link143')" onMouseOut="HideTip('tt43')">IsiGetNvValue</a></td><td class=SDescription>Returns the current value of the specified network variable.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#IsiUserCommand" id=link144 onMouseOver="ShowTip(event, 'tt44', 'link144')" onMouseOut="HideTip('tt44')">IsiUserCommand</a></td><td class=SDescription>Informs the host application about events happening in the Micro Server.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCreatePeriodicMsg"></a>IsiCreatePeriodicMsg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern LonBool IsiCreatePeriodicMsg(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</p><h4 class=CHeading>Remarks</h4><p>Because the ISI engine sends periodic outgoing messages at regular intervals, this function allows an application to send a message in one of the periodic message slots.&nbsp; If the application has no message to send, then this function should return FALSE.&nbsp; If it does have a message to send, then this function should return TRUE.&nbsp; To use this function, you must enable application-specific periodic messages using the <b>IsiFlagApplicationPeriodic</b> flag when you call the <a href="#IsiStart" class=LFunction id=link145 onMouseOver="ShowTip(event, 'tt2', 'link145')" onMouseOut="HideTip('tt2')">IsiStart</a> function.&nbsp; The default implementation of <a href="#IsiCreatePeriodicMsg" class=LFunction id=link146 onMouseOver="ShowTip(event, 'tt28', 'link146')" onMouseOut="HideTip('tt28')">IsiCreatePeriodicMsg</a> does nothing but return FALSE.&nbsp; You can override this function by providing an application-specific implementation of <a href="#IsiCreatePeriodicMsg" class=LFunction id=link147 onMouseOver="ShowTip(event, 'tt28', 'link147')" onMouseOut="HideTip('tt28')">IsiCreatePeriodicMsg</a>.&nbsp; Do not send any messages, start other network transactions, or call other ISI API functions while the <a href="#IsiCreatePeriodicMsg" class=LFunction id=link148 onMouseOver="ShowTip(event, 'tt28', 'link148')" onMouseOut="HideTip('tt28')">IsiCreatePeriodicMsg</a> callback is running.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiUpdateUserInterface"></a>IsiUpdateUserInterface</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiUpdateUserInterface(</td><td class="PType  prettyprint " nowrap>IsiEvent&nbsp;</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>parameter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Provides status feedback from the ISI engine.</p><h4 class=CHeading>Remarks</h4><p>These events are useful for synchronizing the device&rsquo;s user interface with the ISI engine.&nbsp; To receive notification of ISI status events, override the <a href="#IsiUpdateUserInterface" class=LFunction id=link149 onMouseOver="ShowTip(event, 'tt29', 'link149')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> callback function.&nbsp; The default implementation of <a href="#IsiUpdateUserInterface" class=LFunction id=link150 onMouseOver="ShowTip(event, 'tt29', 'link150')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> does nothing.&nbsp; The ISI engine calls this function with the event parameter set to one of the values defined for the <a href="ShortStackIsiTypes-h.html#IsiEvent" class=LType id=link151 onMouseOver="ShowTip(event, 'tt46', 'link151')" onMouseOut="HideTip('tt46')">IsiEvent</a> enumeration.&nbsp; Some of these events carry a meaningful value in the parameter argument, as detailed in the <a href="ShortStackIsiTypes-h.html#IsiEvent" class=LType id=link152 onMouseOver="ShowTip(event, 'tt46', 'link152')" onMouseOut="HideTip('tt46')">IsiEvent</a> definition.&nbsp; You can use the event parameter passed to the <a href="#IsiUpdateUserInterface" class=LFunction id=link153 onMouseOver="ShowTip(event, 'tt29', 'link153')" onMouseOut="HideTip('tt29')">IsiUpdateUserInterface</a> callback function to track the state of the ISI engine.&nbsp; This is a simple way to determine which ISI function calls make sense at any time, and which ones don&rsquo;t.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiCreateCsmo"></a>IsiCreateCsmo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiCreateCsmo(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs the IsiCsmoData portion of a CSMO Message.</p><h4 class=CHeading>Remarks</h4><p>The pCsmo parameter is a pointer to an <b>IsiCsmoData</b> structure that is filled by this function call.&nbsp; This function is called by the ISI engine prior to sending a CSMO message.&nbsp; This function has the same effect if the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetPrimaryGroup"></a>IsiGetPrimaryGroup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetPrimaryGroup(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the group ID for the specified assembly.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns ISI_DEFAULT_GROUP (128).&nbsp; This function is only required if the default implementation, or the forwardee, of <a href="#IsiCreateCsmo" class=LFunction id=link154 onMouseOver="ShowTip(event, 'tt30', 'link154')" onMouseOut="HideTip('tt30')">IsiCreateCsmo</a> is in use.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetAssembly"></a>IsiGetAssembly</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</p><h4 class=CHeading>Remarks</h4><p>The function returns ISI_NO_ASSEMBLY (0xFF) if no such assembly exists, or an application-defined assembly number (0 to 254).&nbsp; The automatic parameter specifies a manually initiated enrollment (automatic = FALSE) or an automatically initiated enrollment (automatic = TRUE).&nbsp; The automatic flag is TRUE both for initial automatic enrollment messages (CSMA) or reminders that relate to a possibly new connection (CSMR).&nbsp; Automatic enrollment reminder messages that relate to existing connections on the local device are not passed to the application.&nbsp; The pointer provided with the <b>pCsmo</b> parameter is only valid for the duration of this function call.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNextAssembly"></a>IsiGetNextAssembly</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNextAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</p><h4 class=CHeading>Remarks</h4><p>The function returns ISI_NO_ASSEMBLY (0xFF) if there are no such assemblies, or an application-specific assembly number (1 to 254).&nbsp; This function is called after calling the <a href="#IsiGetAssembly" class=LFunction id=link155 onMouseOver="ShowTip(event, 'tt32', 'link155')" onMouseOut="HideTip('tt32')">IsiGetAssembly</a> function, unless <a href="#IsiGetAssembly" class=LFunction id=link156 onMouseOver="ShowTip(event, 'tt32', 'link156')" onMouseOut="HideTip('tt32')">IsiGetAssembly</a> returned ISI_NO_ASSEMBLY.&nbsp; The automatic parameter specifies a manually initiated enrollment (automatic = FALSE) or an automatically initiated enrollment (automatic = TRUE).&nbsp; The automatic flag is TRUE both for initial automatic enrollment messages (CSMA) or reminders that relate to a possibly new connection (CSMR).&nbsp; Automatic enrollment reminder messages that relate to existing connections on the local device are not passed to the application.&nbsp; The pointer provided with the <b>pCsmo</b> parameter is only valid for the duration of this function call.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNvIndex"></a>IsiGetNvIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Returns the network variable index 0</td><td class=CDLDescription>254 of the network variable at the specified offset within the specified assembly, or ISI_NO_INDEX if no such network variable exists.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This function must return at least one valid network variable index for each assembly number returned by <a href="#IsiGetAssembly" class=LFunction id=link157 onMouseOver="ShowTip(event, 'tt32', 'link157')" onMouseOut="HideTip('tt32')">IsiGetAssembly</a> and <a href="#IsiGetNextAssembly" class=LFunction id=link158 onMouseOver="ShowTip(event, 'tt33', 'link158')" onMouseOut="HideTip('tt33')">IsiGetNextAssembly</a>.&nbsp; The <b>offset</b> parameter is zero-based and relates to the selector number offset that is used with the enrollment of this assembly.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNextNvIndex"></a>IsiGetNextNvIndex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNextNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>previous</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</p><h4 class=CHeading>Remarks</h4><p>Returns ISI_NO_INDEX if there are no more network variables, or a valid network variable index (1 to 254) otherwise.&nbsp; The <b>offset</b> parameter is zero-based and relates to the selector number offset within the assembly that is used with the enrollment of this assembly.&nbsp; The function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetPrimaryDid"></a>IsiGetPrimaryDid</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned* IsiGetPrimaryDid(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pointer to the default primary domain ID for the device.</p><h4 class=CHeading>Remarks</h4><p>The function also provides the domain ID length in the location provided by the <b>pLength</b> parameter.&nbsp; Domain IDs can be 1, 3, or 6 bytes long; the 0-length domain ID cannot be used for the primary domain.&nbsp; The number of bytes provided through the <b>pLength</b> output parameter must be valid in the returned pointer.&nbsp; You can override this function to override the ISI standard domain ID value.&nbsp; This function is only used to create a non-ISI system.&nbsp; Both length and value of the domain ID provided are considered constant when the ISI engine is running.&nbsp; To change the primary domain ID at runtime using the <a href="#IsiGetPrimaryDid" class=LFunction id=link159 onMouseOver="ShowTip(event, 'tt36', 'link159')" onMouseOut="HideTip('tt36')">IsiGetPrimaryDid</a> callback, stop and re-start the ISI engine.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetWidth"></a>IsiGetWidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetWidth(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the width in the specified assembly.</p><h4 class=CHeading>Remarks</h4><p>The width is equal to the number of network variable selectors associated with the assembly.&nbsp; Applications must override the <a href="#IsiGetWidth" class=LFunction id=link160 onMouseOver="ShowTip(event, 'tt37', 'link160')" onMouseOut="HideTip('tt37')">IsiGetWidth</a> function to support compound assemblies.&nbsp; This function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetConnectionTableSize"></a>IsiGetConnectionTableSize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetConnectionTableSize(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the number of entries in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns the number of entries in the built-in connection table.&nbsp; You can override this function to support an application-specific implementation of the ISI connection table.&nbsp; You can use this function to provide a larger connection table or to store the connection table outside of the Smart Transceiver address space.&nbsp; The ISI library supports connection tables with 0 to 254 entries.&nbsp; The connection table size is considered constant following a call to <a href="#IsiStart" class=LFunction id=link161 onMouseOver="ShowTip(event, 'tt2', 'link161')" onMouseOut="HideTip('tt2')">IsiStart</a>; you must first stop, then re-start the ISI engine if the connection table size changes dynamically.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetConnection"></a>IsiGetConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern IsiConnection* IsiGetConnection(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a pointer to an entry in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation returns a pointer to a built-in connection table.&nbsp; You can override this function to provide an application-specific means of accessing the connection table, or to provide an application table of a different size.&nbsp; The ISI engine requests only one connection table entry at a time, and makes no assumption about the pointer value.&nbsp; This function is called frequently, and should return as soon as possible.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiSetConnection"></a>IsiSetConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiSetConnection(</td><td class="PType  prettyprint " nowrap>IsiConnection&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pConnection,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Updates an entry in the connection table.</p><h4 class=CHeading>Remarks</h4><p>The default implementation updates an entry in the built-in connection table.&nbsp; You can override this function to provide an application-specific means of accessing the connection table, or to provide an application table of a different size.&nbsp; The ISI engine requests only one connection table entry at a time, and makes no assumption about the pointer value.&nbsp; This function is called frequently, and should return as soon as possible.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetRepeatCount"></a>IsiGetRepeatCount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned IsiGetRepeatCount(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</p><h4 class=CHeading>Remarks</h4><p>The repeat counter value is considered constant for the lifetime of the application, and will only be queried: when the device powers up the first time after a new application image has been loaded, and every time <a href="#IsiReturnToFactoryDefaults" class=LFunction id=link162 onMouseOver="ShowTip(event, 'tt3', 'link162')" onMouseOut="HideTip('tt3')">IsiReturnToFactoryDefaults</a> runs.&nbsp; Only repeat counts of 1, 2 or 3 are supported.&nbsp; This function has no affect on ISI messages.&nbsp; This function operates whether the ISI engine is running or not.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiQueryHeartbeat"></a>IsiQueryHeartbeat</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern LonBool IsiQueryHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>nvIndex</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</p><h4 class=CHeading>Remarks</h4><p>When network variable heartbeat processing is enabled and the ISI engine is running, the engine queries bound output network variables using this callback (including any alias connections) whenever the heartbeat is due.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiGetNvValue"></a>IsiGetNvValue</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned* IsiGetNvValue(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>nvIndex,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the current value of the specified network variable.</p><h4 class=CHeading>Remarks</h4><p>This callback returns the value of the network variable specified by the index nvIndex.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="IsiUserCommand"></a>IsiUserCommand</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiUserCommand(</td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param1,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param2,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>void&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pData,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>length</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Informs the host application about events happening in the Micro Server.</p><h4 class=CHeading>Remarks</h4><p>Some custom Micro Servers may need to inform the host application of events known to the custom Micro Server alone.&nbsp; This callback can be invoked by such Micro Servers for that purpose.&nbsp; If the host application can&rsquo;t process such an event, it returns a NACK to the Micro Server.</p></div></div></div>

</div><!--Content-->


<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MEntry><div class=MFile><a href="ldv-h.html">ldv.h</a></div></div><div class=MEntry><div class=MFile><a href="LonPlatform-h.html">LonPlatform.h</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackApi-h.html">SHORTSTACK API</a></div></div><div class=MEntry><div class=MFile id=MSelected>SHORTSTACK ISI API</div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiTypes-h.html">SHORTSTACK ISI TYPES</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackTypes-h.html">SHORTSTACK TYPES</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackApi-c.html">ShortStackApi.c</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackHandlers-c.html">ShortStackHandlers.c</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiApi-c.html">ShortStackIsiApi.c</a></div></div><div class=MEntry><div class=MFile><a href="ShortStackIsiHandlers-c.html">ShortStackIsiHandlers.c</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Macros.html">Macros</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Types.html">Types</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Macros">Macros</option><option value="Types">Types</option></select></div></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStop(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Stops the ISI engine.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStart(</td><td class="PType  prettyprint " nowrap>IsiType&nbsp;</td><td class="PParameter  prettyprint " nowrap>type,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiStartFlags&nbsp;</td><td class="PParameter  prettyprint " nowrap>flags</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts the ISI engine.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiReturnToFactoryDefaults(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Restores the device�s self-installation data to factory defaults.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiAcquireDomain(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>sharedServicePin</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts or restarts the domain ID acquisition process in an ISI-DA device.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiStartDeviceAcquisition(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts or retriggers device acquisition mode on a domain address server.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiOpenEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Opens manual enrollment for the specified assembly.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCreateEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Accepts a connection invitation.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiExtendEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Extends an enrollment invitation.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCancelEnrollment(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Cancels an open (pending or approved) enrollment.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiLeaveEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified assembly from all enrolled connections as a local operation only.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiDeleteEnrollment(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Removes the specified assembly from all enrolled connections.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiInitiateAutoEnrollment(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsma,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts automatic enrollment.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsConnected(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the connection status of an assembly.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryImplementationVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the version number of the ISI implementation.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryProtocolVersion(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the protocol version of the ISI implementation.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsRunning(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries the state of the ISI engine.</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiQueryIsBecomingHost(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Queries whether the specified assembly is a host for an enrollment.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiCancelAcquisition(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Cancels both device and domain acquisition.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiFetchDevice(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Fetches a device by assigning a domain to the device from a domain address server (DAS).</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiFetchDomain(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Starts or restarts the fetch domain process in a domain address server (DAS).</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const LonApiError IsiIssueHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Sends an update for the specified bound output network variable and its aliases, using group addressing.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsConnectedReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isConnected</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsConnected is received.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiImplementationVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryImplementationVersion is received.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiProtocolVersionReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>version</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryProtocolVersion is received.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsRunningReceived(</td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isRunning</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsRunning is received.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiIsBecomingHostReceived(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>isBecomingHost</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Occurs when the response to IsiQueryIsBecomingHost is received.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiApiComplete(</td><td class="PType  prettyprint " nowrap>IsiDownlinkRpcCode&nbsp;</td><td class="PParameter  prettyprint " nowrap>code,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameter  prettyprint " nowrap>sequence,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameter  prettyprint " nowrap>success</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Indicates that the API function is complete and the result has been received.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern LonBool IsiCreatePeriodicMsg(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies whether the application has any messages for the ISI engine to send using the periodic broadcast scheduler.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiUpdateUserInterface(</td><td class="PType  prettyprint " nowrap>IsiEvent&nbsp;</td><td class="PParameter  prettyprint " nowrap>event,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>parameter</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Provides status feedback from the ISI engine.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiCreateCsmo(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs the IsiCsmoData portion of a CSMO Message.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetPrimaryGroup(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the group ID for the specified assembly.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of the first assembly that can join the enrollment characterized by pCsmo.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNextAssembly(</td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>IsiCsmoData&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pCsmo,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>LonBool&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>automatic,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the next applicable assembly following the one indicated with the assembly argument for an incoming CSMO.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetNextNvIndex(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>offset,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>previous</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the network variable index of the network variable at the specified offset within the specified assembly, following the network variable specified by the previous index.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned* IsiGetPrimaryDid(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a pointer to the default primary domain ID for the device.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetWidth(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>assembly</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the width in the specified assembly.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiGetConnectionTableSize(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the number of entries in the connection table.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern IsiConnection* IsiGetConnection(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a pointer to an entry in the connection table.</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern void IsiSetConnection(</td><td class="PType  prettyprint " nowrap>IsiConnection&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pConnection,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>index</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Updates an entry in the connection table.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned IsiGetRepeatCount(</td><td class="PParameter  prettyprint " nowrap>void</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies the repeat count used with all network variable connections, where all connections share the same repeat counter.</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern LonBool IsiQueryHeartbeat(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameter  prettyprint " nowrap>nvIndex</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns TRUE if a heartbeat for the network variable with the global index nvIndex has been sent, and returns FALSE otherwise.</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern const unsigned* IsiGetNvValue(</td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>nvIndex,</td></tr><tr><td></td><td class="PType  prettyprint " nowrap>LonByte&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pLength</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the current value of the specified network variable.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>extern unsigned IsiUserCommand(</td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param1,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>param2,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap>const&nbsp;</td><td class="PType  prettyprint " nowrap>void&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap>*</td><td class="PParameter  prettyprint " nowrap>pData,</td></tr><tr><td></td><td class="PTypePrefix  prettyprint " nowrap></td><td class="PType  prettyprint " nowrap>unsigned&nbsp;</td><td class="PParameterPrefix  prettyprint " nowrap></td><td class="PParameter  prettyprint " nowrap>length</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Informs the host application about events happening in the Micro Server.</div></div><div class=CToolTip id="tt45"><div class=CType>ShortStack LonTalk Compact 2.1 API error codes.</div></div><div class=CToolTip id="tt46"><div class=CType>Enumeration for different event types.</div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>